home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
DB_CLIPP
/
1159.ZIP
/
OSSPRNSE.PRG
< prev
next >
Wrap
Text File
|
1988-11-07
|
27KB
|
1,243 lines
CLOSE DATABASES
USE &DBNAME INDEX &INDEX1,&INDEX2
SET SAFETY OFF
SET DELETED ON
DO CASE
CASE OTHERCAL=1
SET FILTER TO CALIB_INT=0.OR.CAT3ABB $ SUBCATID
CASE STORAGE=1
SET FILTER TO SUB1ABB $ SUBCATID
CASE CAL=1
SET FILTER TO CALIB_INT=0.OR.SUB2ABB $ SUBCATID.OR.SUB3ABB $ SUBCATID
CASE ALL=1
SET FILTER TO
CASE CALDU=1
SET FILTER TO COMPDATE1<=CAL_DUE_DT .AND. COMPDATE2>=CAL_DUE_DT
CASE CALDT=1
SET FILTER TO COMPDATE1<=CALIB_DATE .AND. COMPDATE2>=CALIB_DATE
CASE CALINT=1
SET FILTER TO INTERVAL1<=CALIB_INT .AND. INTERVAL2>=CALIB_INT
CASE REMK=1
SET FILTER TO REMARK1 $ REMARK
CASE UPDT=1
SET FILTER TO COMPDATE1<=LAST_UPDAT .AND. COMPDATE2>=LAST_UPDAT
CASE INCAL=1
SET FILTER TO SUB2ABB $ SUBCATID
CASE INREP=1
SET FILTER TO SUB3ABB $ SUBCATID
CASE SERPHRASE=1
SET FILTER TO SERPH $ UPPER(SERIAL_NO)
CASE TVAPHRASE=1
SET FILTER TO TVAPH $ TVA_NO
CASE NOTUSED=1
DO CASE
CASE NUMCOND=1
DO CASE
CASE COND1=DUEWITHIN.OR.COND1='ONLY'
SET FILTER TO CALIB_INT=99
CASE COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.CALIB_INT=99
CASE COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.CALIB_INT=99
ENDCASE
CASE NUMCOND=2
DO CASE
CASE COND1=DUEWITHIN.AND.COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.CALIB_INT=99
CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.CALIB_INT=99
CASE COND2=LOCATI.AND.COND3=INSTTYPE
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
CALIB_INT=99
ENDCASE
CASE NUMCOND=3
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
CALIB_INT=99
ENDCASE
CASE INACTIVE=0
DO CASE
CASE NUMCOND=1
DO CASE
CASE COND1='ONLY'
SET FILTER TO BY_DATE>10
CASE COND1=DUEWITHIN
SET FILTER TO BYDATE>BY_DATE.AND.BY_DATE>10
CASE COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.BY_DATE>10
CASE COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.BY_DATE>10
ENDCASE
CASE NUMCOND=2
DO CASE
CASE COND1=DUEWITHIN.AND.COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.BYDATE>BY_DATE.AND.;
BY_DATE>10
CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.BYDATE>BY_DATE.AND.;
BY_DATE>10
CASE COND2=LOCATI.AND.COND3=INSTTYPE
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
BY_DATE>10
ENDCASE
CASE NUMCOND=3
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
BYDATE>BY_DATE.AND.BY_DATE>10
ENDCASE
CASE NUMCOND=1
DO CASE
CASE COND1=DUEWITHIN
SET FILTER TO BYDATE>BY_DATE.AND.CALIB_INT#0
CASE COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION)
CASE COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE)
ENDCASE
CASE NUMCOND=2
DO CASE
CASE COND1=DUEWITHIN.AND.COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION) .AND. BYDATE>BY_DATE.AND.CALIB_INT#0
CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE) .AND. BYDATE>BY_DATE.AND.CALIB_INT#0
CASE COND2=LOCATI.AND.COND3=INSTTYPE
SET FILTER TO LOC $ UPPER(LOCATION) .AND. INST $ UPPER(INST_TYPE)
ENDCASE
CASE NUMCOND=3
SET FILTER TO LOC $ UPPER(LOCATION) .AND. INST $ UPPER(INST_TYPE) .AND. ;
BYDATE>BY_DATE.AND.CALIB_INT#0
ENDCASE
SET BELL OFF
SET TALK OFF
SET CONSOLE ON
CLEAR
GO TOP
IF EOF()
@ 1,15 SAY 'Data base in use: '
?? OSS
@ 4,0
?' CONDITIONS: '
?
?
IF COND1=DUEWITHIN
?? DUEDATE
??' <= '
?? COMPDATE
??' '
ENDIF
IF COND3=INSTTYPE
?? INSTNAME
??': '
?? INST
??' '
ENDIF
IF NUMCOND=3
?
ENDIF
IF COND2=LOCATI
?? LOCATNAME
??': '
?? LOC
ENDIF
?
?
DO CASE
CASE OTHERCAL=1
??'Category: '
?? CATEGORY3
??'.'
CASE STORAGE=1
??'Subcategory: '
?? SUBCAT1
??'.'
CASE CAL=1
??'Subcategories: '
?? SUBCAT2
??' and '
?? SUBCAT3
??'.'
CASE ALL=1
??'All records in this data base.'
CASE CALDU=1
??'Records with '
?? DUEDATE
??' designations from '
?? COMPDATE1
??' to '
?? COMPDATE2
??'.'
CASE CALDT=1
??'Records with '
?? CALIBDATE
??' designations from '
?? COMPDATE1
??' to '
?? COMPDATE2
??'.'
CASE CALINT=1
??'Records with '
?? CALINTERVL
??' designations from '
?? INTERVAL1
??' months to'
?? INTERVAL2
??' months.'
CASE REMK=1
??'Records with the phrase "'
?? REMARK1
??'" in the '
?? REMARKNM
??' field.'
CASE UPDT=1
??'Records which were last updated from '
?? COMPDATE1
??' to '
?? COMPDATE2
??'.'
CASE INCAL=1
??'Records in subcategory: '
?? SUBCAT2
??'.'
CASE INREP=1
??'Records in subcategory: '
?? SUBCAT3
??'.'
CASE SERPHRASE=1
??'Records having the phrase "'
?? SERPH
?? '" in the '
?? SERIALNUM
??' field.'
CASE TVAPHRASE=1
??'Records having the phrase "'
?? TVAPH
?? '" in the '
?? TVANUMBER
??' field.'
CASE NOTUSED=1
??'Category "'
?? CATEGORY2
??' ONLY.'
CASE INACTIVE=0
??'Category '
?? CATEGORY1
??' ONLY.'
CASE INACTIVE=1
IF COND1=DUEWITHIN
?'Categories: '
?? CATEGORY1
??' and '
?? CATEGORY2
??'.'
ELSE
?'Categories: '
?? CATEGORY1
??', '
?? CATEGORY2
??','
?'and '
?? CATEGORY3
??'.'
ENDIF
ENDCASE
@ 14,5 SAY 'No records satisfying the above condition(s) were found.'
?
?
WAIT ' Press any key to continue . . .' TO RESPONSE
RETURN
ENDIF
ORDERTMP='Z'
ORDERTEMP='Z'
DO WHILE ASC(ORDERTMP)<ASC('A').OR.ASC(ORDERTMP)>ASC('I')
CLEAR
@ 1,0 SAY 'You may order the records according to the contents of any of the'
?'fields listed below. Choose any one of them, or you may press RETURN to'
?'return to the previous menu.'
?
?' A) '
?? INSTNAME
?
?' (fast) B) '
?? SERIALNUM
?
?' (fast) C) '
?? TVANUMBER
?
?' D) '
?? CALIBDATE
?
?' E) '
?? DUEDATE
?
?' F) '
?? LOCATNAME
?
?' G) '
?? CALINTERVL
?
?' H) Last Update'
?
?' I) '
?? REMARKNM
?
WAIT ' ' TO ORDERTMP
ORDERTMP=UPPER(LTRIM(TRIM(ORDERTMP)))
@ ROW(),12 SAY 'WORKING . . . '
IF LEN(ORDERTMP)=0
CLOSE DATABASES
USE &DBNAME INDEX &INDEX1,&INDEX2
RETURN
ENDIF
ENDDO
DO CASE
CASE ORDERTMP='A'
ORDERTEMP='INST_TYPE'
CASE ORDERTMP='F'
ORDERTEMP='LOCATION'
CASE ORDERTMP='G'
ORDERTEMP='CALIB_INT'
CASE ORDERTMP='I'
ORDERTEMP='REMARK'
ENDCASE
DO CASE
CASE ORDERTMP='B'
SET INDEX TO &INDEX2,&INDEX1
CASE ORDERTMP='C'
SET INDEX TO &INDEX1,&INDEX2
CASE ORDERTMP='D'
INDEX ON STR(YEAR(CALIB_DATE),4)+DTOC(CALIB_DATE) TO TMPNDX
SET INDEX TO TMPNDX
CASE ORDERTMP='E'
INDEX ON STR(YEAR(CAL_DUE_DT),4)+DTOC(CAL_DUE_DT) TO TMPNDX
SET INDEX TO TMPNDX
CASE ORDERTMP='H'
INDEX ON STR(YEAR(LAST_UPDAT),4)+DTOC(LAST_UPDAT) TO TMPNDX
SET INDEX TO TMPNDX
OTHERWISE
INDEX ON &ORDERTEMP TO TMPNDX
SET INDEX TO TMPNDX
ENDCASE
CLEAR
IF PRINTOUT=1 .AND. .NOT. EOF()
READY='K'
DO WHILE READY#'Y'
CLEAR
?
?'Make SURE the printer is ready to print. Then press "Y" to continue,'
?
?'or else press "RETURN" to return to a previous menu.'
?
?
?'PLEASE NOTE: If you should ever make a mistake and there is a system error'
?
?'because the printer is not ready, FIRST enable the printer and THEN press'
?
?'"I" for the "ignor" option until no further error is indicated.'
?
CLEAR TYPEAHEAD
WAIT ' ' TO READY
READY=UPPER(READY)
IF ASC(READY)=0
RETURN
ENDIF
ENDDO
CLEAR
@ 4,35 SAY 'WORKING . . .'
@ 7,0
SET DEVICE TO PRINT
SET PRINT ON
SET CONSOLE ON
ENDIF
SET CONSOLE ON
@ 0,0 SAY ' '
?'CONDITIONS: '
SET PRINT OFF
?
?
IF PRINTOUT=1 .AND. .NOT. EOF()
SET PRINT ON
ENDIF
IF COND1=DUEWITHIN
?? DUEDATE
??' <= '
?? COMPDATE
??' '
ENDIF
IF COND3=INSTTYPE
?? INSTNAME
??': '
?? INST
??' '
ENDIF
IF NUMCOND=3
SET PRINT OFF
?
?
IF PRINTOUT=1 .AND. .NOT. EOF()
SET PRINT ON
ENDIF
ENDIF
IF COND2=LOCATI
?? LOCATNAME
??': '
?? LOC
ENDIF
SET CONSOLE OFF
?
DO CASE
CASE OTHERCAL=1
??'Category: '
?? CATEGORY3
??'.'
CASE STORAGE=1
??'Subcategory: '
?? SUBCAT1
??'.'
CASE CAL=1
??'Subcategories: '
?? SUBCAT2
??' and '
?? SUBCAT3
??'.'
CASE ALL=1
??'All records in this data base.'
CASE CALDU=1
??'Records with '
?? DUEDATE
??' designations from '
?? COMPDATE1
??' to '
?? COMPDATE2
??'.'
CASE CALDT=1
??'Records with '
?? CALIBDATE
??' designations from '
?? COMPDATE1
??' to '
?? COMPDATE2
??'.'
CASE CALINT=1
??'Records with '
?? CALINTERVL
??' designations from '
?? INTERVAL1
??' months to'
?? INTERVAL2
??' months.'
CASE REMK=1
??'Records with the phrase "'
?? REMARK1
??'" in the '
?? REMARKNM
??' field.'
CASE UPDT=1
??'Records which were last updated from '
?? COMPDATE1
??' to '
?? COMPDATE2
??'.'
CASE INCAL=1
??'Records in subcategory: '
?? SUBCAT2
??'.'
CASE INREP=1
??'Records in subcategory: '
?? SUBCAT3
??'.'
CASE SERPHRASE=1
??'Records having the phrase "'
?? SERPH
?? '" in the '
?? SERIALNUM
??' field.'
CASE TVAPHRASE=1
??'Records having the phrase "'
?? TVAPH
?? '" in the '
?? TVANUMBER
??' field.'
CASE NOTUSED=1
??'Category '
?? CATEGORY2
??' ONLY.'
CASE INACTIVE=0
??'Category '
?? CATEGORY1
??' ONLY.'
CASE INACTIVE=1
IF COND1=DUEWITHIN
??'Categories: '
?? CATEGORY1
??' and '
?? CATEGORY2
??'.'
ELSE
??'Categories: '
?? CATEGORY1
??', '
?? CATEGORY2
??' and '
?? CATEGORY3
??'.'
ENDIF
ENDCASE
SET CONSOLE ON
SET PRINT OFF
?
?
DO CASE
CASE OTHERCAL=1
??'Category: '
?? CATEGORY3
??'.'
CASE STORAGE=1
??'Subcategory: '
?? SUBCAT1
??'.'
CASE CAL=1
??'Subcategories: '
?? SUBCAT2
??' and '
?? SUBCAT3
??'.'
CASE ALL=1
??'All records in this data base.'
CASE CALDU=1
??'Records with '
?? DUEDATE
??' designations from '
?? COMPDATE1
??' to '
?? COMPDATE2
??'.'
CASE CALDT=1
??'Records with '
?? CALIBDATE
??' designations from '
?? COMPDATE1
??' to '
?? COMPDATE2
??'.'
CASE CALINT=1
??'Records with '
?? CALINTERVL
??' designations from '
?? INTERVAL1
??' months to'
?? INTERVAL2
??' months.'
CASE REMK=1
??'Records with the phrase "'
?? REMARK1
??'" in the '
?? REMARKNM
??' field.'
CASE UPDT=1
??'Records which were last updated from '
?? COMPDATE1
??' to '
?? COMPDATE2
??'.'
CASE INCAL=1
??'Records in subcategory: '
?? SUBCAT2
??'.'
CASE INREP=1
??'Records in subcategory: '
?? SUBCAT3
??'.'
CASE SERPHRASE=1
??'Records having the phrase "'
?? SERPH
?? '" in the '
?? SERIALNUM
??' field.'
CASE TVAPHRASE=1
??'Records having the phrase "'
?? TVAPH
?? '" in the '
?? TVANUMBER
??' field.'
CASE NOTUSED=1
??'Category "'
?? CATEGORY2
??'" ONLY.'
CASE INACTIVE=0
??'Category '
?? CATEGORY1
??' ONLY.'
CASE INACTIVE=1
IF COND1=DUEWITHIN
?'Categories: '
?? CATEGORY1
??' and '
?? CATEGORY2
??'.'
ELSE
?'Categories: '
?? CATEGORY1
??', '
?? CATEGORY2
??' and '
?? CATEGORY3
??'.'
ENDIF
ENDCASE
SET DEVICE TO SCREEN
DO CASE
CASE OTHERCAL=1
SET FILTER TO BY_DATE>10.AND.CAT3ABB $ SUBCATID
CASE STORAGE=1
SET FILTER TO BY_DATE>10.AND.SUB1ABB $ SUBCATID
CASE CAL=1
SET FILTER TO BY_DATE>10.AND.(SUB2ABB $ SUBCATID.OR.SUB3ABB $ SUBCATID)
CASE ALL=1
SET FILTER TO BY_DATE>10
CASE CALDU=1
SET FILTER TO COMPDATE1<=CAL_DUE_DT .AND.;
COMPDATE2>=CAL_DUE_DT.AND.BY_DATE>10
CASE CALDT=1
SET FILTER TO COMPDATE1<=CALIB_DATE .AND. COMPDATE2>=CALIB_DATE.AND.;
BY_DATE>10
CASE CALINT=1
SET FILTER TO INTERVAL1<=CALIB_INT .AND. INTERVAL2>=CALIB_INT.AND.;
BY_DATE>10
CASE REMK=1
SET FILTER TO REMARK1 $ REMARK.AND.BY_DATE>10
CASE UPDT=1
SET FILTER TO COMPDATE1<=LAST_UPDAT .AND. COMPDATE2>=LAST_UPDAT.AND.;
BY_DATE>10
CASE INCAL=1
SET FILTER TO SUB2ABB $ SUBCATID.AND.BY_DATE>10
CASE INREP=1
SET FILTER TO SUB3ABB $ SUBCATID.AND.BY_DATE>10
CASE SERPHRASE=1
SET FILTER TO SERPH $ SERIAL_NO.AND.BY_DATE>10
CASE TVAPHRASE=1
SET FILTER TO TVAPH $ TVA_NO.AND.BY_DATE>10
CASE NOTUSED=1
SET FILTER TO
CASE NUMCOND=1
DO CASE
CASE COND1=DUEWITHIN
SET FILTER TO BYDATE>BY_DATE.AND.BY_DATE>10
CASE COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.BY_DATE>10
CASE COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.BY_DATE>10
ENDCASE
CASE NUMCOND=2
DO CASE
CASE COND1=DUEWITHIN.AND.COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.BYDATE>BY_DATE.AND.;
BY_DATE>10
CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.BYDATE>BY_DATE.AND.;
BY_DATE>10
CASE COND2=LOCATI.AND.COND3=INSTTYPE
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
BY_DATE>10
ENDCASE
CASE NUMCOND=3
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
BYDATE>BY_DATE.AND.BY_DATE>10
ENDCASE
IF NOTUSED=1
GO RECCOUNT()
SKIP
ELSE
GO TOP
ENDIF
NNN=0
N99=0
NN=0
IF PRINTOUT=1
N=5
SET CONSOLE OFF
SET PRINT ON
SET DEVICE TO PRINT
@ 3,66-INT(LEN(TITLE1)/2) SAY TITLE1
@ 3,105 SAY "Today's date is"
@ 3,122 SAY DATE()
@ 3,130 SAY '.'
DO WHILE NN=0
DO WHILE .NOT. EOF()
DO CASE
CASE NNN=0
IF INSTNAME#'.'
@ N,0 SAY INSTNAME
ENDIF
IF SERIALNUM#'.'
@ N,21 SAY SERIALNUM
ENDIF
IF TVANUMBER#'.'
@ N,36 SAY TVANUMBER
ENDIF
IF CALIBDATE#'.'
@ N,51 SAY CALIBDATE
ENDIF
IF DUEDATE#'.'
@ N,61 SAY DUEDATE
ENDIF
IF LOCATNAME#'.'
@ N,95 SAY LOCATNAME
ENDIF
IF CALINTERVL#'.'
@ N,110 SAY CALINTERVL
ENDIF
@ N,120 SAY 'LAST UPDATE'
IF CALINTERVL#'.'
@ N+1,110 SAY '(months)'
ENDIF
@ N+2,0 SAY ' '
CASE NNN=1
?
DO CASE
CASE PROW()>53
@ 0,65-INT((LEN(CATEGORY2+CATEGORY3)+67)/2) SAY 'THESE RECORDS ARE;
EITHER PRESENTLY IN CATEGORY "'
?? CATEGORY2
??'" OR IN CATEGORY "'
?? CATEGORY3
??'"'
OTHERWISE
@ PROW(),65-INT((LEN(CATEGORY2+CATEGORY3)+67)/2) SAY 'THESE RECORDS ARE;
EITHER PRESENTLY IN CATEGORY "'
?? CATEGORY2
??'" OR IN CATEGORY "'
?? CATEGORY3
??'"'
ENDCASE
IF INSTNAME#'.'
@ PROW()+2,0 SAY INSTNAME
ENDIF
IF SERIALNUM#'.'
@ PROW(),21 SAY SERIALNUM
ENDIF
IF TVANUMBER#'.'
@ PROW(),36 SAY TVANUMBER
ENDIF
IF CALIBDATE#'.'
@ PROW(),51 SAY CALIBDATE
ENDIF
IF DUEDATE#'.'
@ PROW(),63 SAY DUEDATE
ENDIF
IF LOCATNAME#'.'
@ PROW(),95 SAY LOCATNAME
ENDIF
@ PROW(),120 SAY 'LAST UPDATE'
?
?
ENDCASE
DO WHILE .NOT. EOF()
DO CASE
CASE NNN=0
IF PROW()>53
EXIT
ENDIF
DO CASE
CASE BY_DATE=100
@ PROW()+1,51 SAY TDREMARK
CASE BY_DATE=200
@ PROW()+1,51 SAY DREMARK
ENDCASE
@ PROW()+1,0 SAY INST_TYPE
@ PROW(),21 SAY SERIAL_NO
@ PROW(),36 SAY TVA_NO
@ PROW(),51 SAY CALIB_DATE
@ PROW(),61 SAY CAL_DUE_DT
@ PROW(),70 SAY CDOW(CAL_DUE_DT)
??', '
?? CMONTH(CAL_DUE_DT)
?? DAY(CAL_DUE_DT)
@ PROW(),95 SAY LOCATION
@ PROW(),113 SAY CALIB_INT
@ PROW(),121 SAY LAST_UPDAT
PT=0
IF CAT3ABB $ SUBCATID
?'/'
?? CATEGORY3
??'/ '
PT=1
ENDIF
IF SUB1ABB $ SUBCATID
IF PT=0
?'('
?? SUBCAT1
??') '
PT=1
ELSE
??'('
?? SUBCAT1
??') '
ENDIF
ENDIF
IF SUB2ABB $ SUBCATID
IF PT=0
?'('
?? SUBCAT2
??') '
PT=1
ELSE
??'('
?? SUBCAT2
??') '
ENDIF
ENDIF
IF SUB3ABB $ SUBCATID
IF PT=0
?'('
?? SUBCAT3
??') '
PT=1
ELSE
??'('
?? SUBCAT3
??') '
ENDIF
ENDIF
IF LEN(TRIM(REMARK))#0
? TRIM(REMARK)
ENDIF
CASE NNN=1
IF PROW()>53
EXIT
ENDIF
@ PROW()+1,0 SAY INST_TYPE
@ PROW(),21 SAY SERIAL_NO
@ PROW(),36 SAY TVA_NO
DTE=0
REMKE=LTRIM(TRIM(REMARK))
IF DTOC(CALIB_DATE) # ' / / ' .OR. CALIBDATE # '.'
@ PROW(),51 SAY CALIB_DATE
ENDIF
IF DTOC(CAL_DUE_DT) # ' / / ' .OR. DUEDATE # '.'
@ PROW(),69 SAY CAL_DUE_DT
ENDIF
DO CASE
CASE CALIB_INT=99
@ PROW(),78 SAY CATEGORY2
CASE CALIB_INT=0
@ PROW(),78 SAY CATEGORY3
ENDCASE
@ PROW(),95 SAY LOCATION
@ PROW(),121 SAY LAST_UPDAT
PT=0
IF CAT3ABB $ SUBCATID
?'/'
?? CATEGORY3
??'/ '
PT=1
ENDIF
IF SUB1ABB $ SUBCATID
IF PT=0
?'('
?? SUBCAT1
??') '
PT=1
ELSE
??'('
?? SUBCAT1
??') '
ENDIF
ENDIF
IF SUB2ABB $ SUBCATID
IF PT=0
?'('
?? SUBCAT2
??') '
PT=1
ELSE
??'('
?? SUBCAT2
??') '
ENDIF
ENDIF
IF SUB3ABB $ SUBCATID
IF PT=0
?'('
?? SUBCAT3
??') '
ELSE
??'('
?? SUBCAT3
??') '
ENDIF
ENDIF
IF LEN(REMKE)>0
? REMKE
ENDIF
N99=0
ENDCASE
NSPC=1
DO WHILE NSPC<SPACING
?
NSPC=NSPC+1
ENDDO
SKIP
ENDDO
?
N=0
ENDDO
IF NNN=0
DO CASE
CASE NOTUSED=1
SET FILTER TO CALIB_INT=99
CASE OTHERCAL=1
SET FILTER TO CALIB_INT=0.OR.(BY_DATE<10.AND.CAT3ABB $ SUBCATID)
CASE STORAGE=1
SET FILTER TO BY_DATE<10.AND.SUB1ABB $ SUBCATID
CASE CAL=1
SET FILTER TO BY_DATE<10.AND.(SUB2ABB $ SUBCATID.OR.SUB3ABB $ SUBCATID)
CASE ALL=1
SET FILTER TO BY_DATE<10
CASE INACTIVE=0
?'****************************************************************************;
*******************************************************'
EXIT
CASE NUMCOND=1
DO CASE
CASE CALDU=1
SET FILTER TO COMPDATE1<=CAL_DUE_DT .AND. COMPDATE2>=CAL_DUE_DT.AND.;
BY_DATE<10
CASE CALDT=1
SET FILTER TO COMPDATE1<=CALIB_DATE .AND. COMPDATE2>=CALIB_DATE.AND.;
BY_DATE<10
CASE CALINT=1
SET FILTER TO INTERVAL1<=CALIB_INT .AND. INTERVAL2>=CALIB_INT.AND.;
BY_DATE<10
CASE REMK=1
SET FILTER TO REMARK1 $ REMARK.AND.BY_DATE<10
CASE UPDT=1
SET FILTER TO COMPDATE1<=LAST_UPDAT .AND. COMPDATE2>=LAST_UPDAT.AND.;
BY_DATE<10
CASE INCAL=1
SET FILTER TO SUB2ABB $ SUBCATID.AND.BY_DATE<10
CASE INREP=1
SET FILTER TO SUB3ABB $ SUBCATID.AND.BY_DATE<10
CASE SERPHRASE=1
SET FILTER TO SERPH $ SERIAL_NO.AND.BY_DATE<10
CASE TVAPHRASE=1
SET FILTER TO TVAPH $ TVA_NO.AND.BY_DATE<10
CASE COND1=DUEWITHIN
SET FILTER TO CALIB_INT=99
CASE COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.BY_DATE<10
CASE COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.BY_DATE<10
ENDCASE
CASE NUMCOND=2
DO CASE
CASE COND1=DUEWITHIN.AND.COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.CALIB_INT=99
CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.CALIB_INT=99
CASE COND2=LOCATI.AND.COND3=INSTTYPE
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
BY_DATE<10
ENDCASE
CASE NUMCOND=3
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
CALIB_INT=99
ENDCASE
GO TOP
IF .NOT. EOF()
N99=1
ENDIF
ENDIF
NNN=1
IF N99=0
NN=1
ENDIF
?'****************************************************************************;
*******************************************************'
IF N99=1 .AND. NNN=1 .AND. PROW()>43
@ 0,0 SAY ' '
ENDIF
ENDDO
?
?'****************************************************************************;
*******************************************************'
?
?' END OF LISTING'
NPRN=0
DO WHILE NPRN<PAPEROUT
?
NPRN=NPRN+1
ENDDO
SET DEVICE TO SCREEN
SET PRINT OFF
ENDIF
IF VIEW=1
DO CASE
CASE OTHERCAL=1
SET FILTER TO CALIB_INT=0.OR.CAT3ABB $ SUBCATID
CASE STORAGE=1
SET FILTER TO SUB1ABB $ SUBCATID
CASE CAL=1
SET FILTER TO SUB2ABB $ SUBCATID.OR.SUB3ABB $ SUBCATID
CASE ALL=1
SET FILTER TO
CASE CALDU=1
SET FILTER TO COMPDATE1<=CAL_DUE_DT .AND. COMPDATE2>=CAL_DUE_DT
CASE CALDT=1
SET FILTER TO COMPDATE1<=CALIB_DATE .AND. COMPDATE2>=CALIB_DATE
CASE CALINT=1
SET FILTER TO INTERVAL1<=CALIB_INT .AND. INTERVAL2>=CALIB_INT
CASE REMK=1
SET FILTER TO REMARK1 $ REMARK
CASE UPDT=1
SET FILTER TO COMPDATE1<=LAST_UPDAT .AND. COMPDATE2>=LAST_UPDAT
CASE INCAL=1
SET FILTER TO SUB2ABB $ SUBCATID
CASE INREP=1
SET FILTER TO SUB3ABB $ SUBCATID
CASE SERPHRASE=1
SET FILTER TO SERPH $ SERIAL_NO
CASE TVAPHRASE=1
SET FILTER TO TVAPH $ TVA_NO
CASE NOTUSED=1
DO CASE
CASE NUMCOND=1
DO CASE
CASE COND1=DUEWITHIN.OR. COND1='ONLY'
SET FILTER TO CALIB_INT=99
CASE COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.CALIB_INT=99
CASE COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.CALIB_INT=99
ENDCASE
CASE NUMCOND=2
DO CASE
CASE COND1=DUEWITHIN.AND.COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.CALIB_INT=99
CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.CALIB_INT=99
CASE COND2=LOCATI.AND.COND3=INSTTYPE
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
CALIB_INT=99
ENDCASE
CASE NUMCOND=3
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
CALIB_INT=99
ENDCASE
CASE INACTIVE=0
DO CASE
CASE NUMCOND=1
DO CASE
CASE COND1='ONLY'
SET FILTER TO BY_DATE>10
CASE COND1=DUEWITHIN
SET FILTER TO BYDATE>BY_DATE.AND.BY_DATE>10
CASE COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.BY_DATE>10
CASE COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.BY_DATE>10
ENDCASE
CASE NUMCOND=2
DO CASE
CASE COND1=DUEWITHIN.AND.COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION).AND.BYDATE>BY_DATE.AND.;
BY_DATE>10
CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE).AND.BYDATE>BY_DATE.AND.;
BY_DATE>10
CASE COND2=LOCATI.AND.COND3=INSTTYPE
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
BY_DATE>10
ENDCASE
CASE NUMCOND=3
SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ UPPER(INST_TYPE).AND.;
BYDATE>BY_DATE.AND.BY_DATE>10
ENDCASE
CASE NUMCOND=1
DO CASE
CASE COND1=DUEWITHIN
SET FILTER TO BYDATE>BY_DATE.AND.CALIB_INT#0
CASE COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION)
CASE COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE)
ENDCASE
CASE NUMCOND=2
DO CASE
CASE COND1=DUEWITHIN.AND.COND2=LOCATI
SET FILTER TO LOC $ UPPER(LOCATION) .AND. BYDATE>BY_DATE.AND.CALIB_INT#0
CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
SET FILTER TO INST $ UPPER(INST_TYPE) .AND. BYDATE>BY_DATE.AND.CALIB_INT#0
CASE COND2=LOCATI.AND.COND3=INSTTYPE
SET FILTER TO LOC $ UPPER(LOCATION) .AND. INST $ UPPER(INST_TYPE)
ENDCASE
CASE NUMCOND=3
SET FILTER TO LOC $ UPPER(LOCATION) .AND. INST $ UPPER(INST_TYPE) .AND. ;
BYDATE>BY_DATE.AND.CALIB_INT#0
ENDCASE
@ 14,0 CLEAR
@ 16,5 SAY 'Now copying selected records into the viewer file . . .'
COPY TO REPWORK
USE REPWORK
ENDREC=RECCOUNT()
GO TOP
DO WHILE .NOT. EOF()
SET CONSOLE ON
CLEAR
DO CASE
CASE ENDREC # 1
@ 1,7+INT(LOG(ENDREC)/LOG(10))+INT(LOG(RECNO())/LOG(10)) SAY ENDREC
??' records. '
??'Data base in use: '
?? OSS
@ 1,2+INT(LOG(RECNO())/LOG(10)) SAY RECNO()
??' of '
@ 1,0 SAY 'Record No.'
DO CASE
CASE RECNO()=ENDREC
?'End of listing'
CASE RECNO()=1
?'Beginning of listing'
ENDCASE
CASE ENDREC=1
?'There is only 1 record in this listing.'
ENDCASE
@ 3,0 SAY INSTNAME
@ 3,23 SAY SERIALNUM
@ 3,40 SAY TVANUMBER
@ 3,57 SAY CALIBDATE
@ 3,70 SAY 'NEXT DATE'
DO CASE
CASE BY_DATE=100
@ 5,56 SAY TDREMARK
CASE BY_DATE=200
@ 5,58 SAY DREMARK
ENDCASE
@ 6,0 SAY INST_TYPE
@ 6,23 SAY SERIAL_NO
@ 6,40 SAY TVA_NO
@ 6,58 SAY CALIB_DATE
@ 6,70 SAY CAL_DUE_DT
PT=0
IF CAT3ABB $ SUBCATID
?'/'
?? CATEGORY3
??'/ '
PT=1
ENDIF
IF SUB1ABB $ SUBCATID
IF PT=0
?'('
?? SUBCAT1
??') '
PT=1
ELSE
??'('
?? SUBCAT1
??') '
ENDIF
ENDIF
IF SUB2ABB $ SUBCATID
IF PT=0
?'('
?? SUBCAT2
??') '
PT=1
ELSE
??'('
?? SUBCAT2
??') '
ENDIF
ENDIF
IF SUB3ABB $ SUBCATID
IF PT=0
?'('
?? SUBCAT3
??') '
ELSE
??'('
?? SUBCAT3
??') '
ENDIF
ENDIF
@ 9,0 SAY LOCATNAME
??': '
?? LOCATION
IF CALIB_INT>0.AND.CALIB_INT<99
??' '
?? CALINTERVL
??': '
?? CALIB_INT
??' months'
ENDIF
DO CASE
CASE CALIB_INT=99
@ 9,60 SAY '/'
?? CATEGORY2
??'/'
CASE CALIB_INT=0
@ 9,60 SAY '/'
?? CATEGORY3
??'/'
ENDCASE
@ 11,0 SAY REMARK
@ 14,0 SAY 'LAST UPDATE:'
@ 14,14 SAY LAST_UPDAT
N4="K"
DO WHILE ASC(N4)#0.AND.N4#' ' .AND.;
N4#'P'.AND.N4#'U'.AND.N4#'D'.AND.N4#'E'.AND.N4#'B'
@ 16,0 SAY 'Press SPACEBAR to see the next record.'
@ 17,0 SAY 'Press "P" to see previous record.'
IF ENDREC>7
?'Press "U" to go up 7 records.'
?'Press "D" to go down 7 records.'
ENDIF
?'Press "E" to go to the ending (last) record.'
?'Press "B" to go to the beginning (first) record.'
?
WAIT 'Press "RETURN" to return to a previous menu.' TO N4
N4=UPPER(N4)
ENDDO
DO CASE
CASE N4='P' .AND. RECNO() # 1
GO RECNO()-1
CASE N4='P' .AND. RECNO() = 1
GO BOTTOM
CASE ASC(N4)=0
ZAP
RETURN
CASE N4=' '.AND.ENDREC=RECNO()
GO TOP
CASE N4=' '
SKIP
CASE N4='D'
IF ENDREC>7
IF ENDREC-RECNO()>6
GO RECNO()+7
ELSE
GO RECNO()+7-ENDREC
ENDIF
ELSE
N4='Z'
ENDIF
CASE N4='U'
IF ENDREC>7
IF RECNO()>7
GO RECNO()-7
ELSE
GO ENDREC-7+RECNO()
ENDIF
ELSE
N4='Z'
ENDIF
CASE N4='E'
GO BOTTOM
CASE N4='B'
GO TOP
ENDCASE
ENDDO
ENDIF
USE REPWORK
ZAP
SET CONSOLE ON
SET BELL ON
RETURN